package com.paynalton.ozwizard;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.webkit.*;
import android.content.*;
import java.util.prefs.*;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.View.OnTouchListener;

public class MainActivity extends Activity
{
	int actual;
	int total=25;
	Button next;
	Button prev;
	WebView caja;
	String lang;
	String url="file:///android_asset/book%s/cap%d.html";
	SharedPreferences opciones;
	GestureDetector detector;
	OnTouchListener touchListener;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
	{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
		
		
		
		opciones=getPreferences(0);
		caja=(WebView) findViewById(R.id.vista);
		caja.setInitialScale((int)opciones.getFloat("zoom",100));
		caja.getSettings().setDefaultTextEncodingName("utf-8");
		lang=getString(R.string.lang);
		setPage();
		detector=new GestureDetector(new detector());
		
		
		caja.setOnTouchListener(new OnTouchListener(){
			@Override
			public boolean onTouch(View v,MotionEvent ev){
				
				return detector.onTouchEvent(ev);
				}
		});
		
		next=(Button) findViewById(R.id.Next);
		next.setOnClickListener(new View.OnClickListener() {
			public void onClick(View arg0) { 
				if(actual<total){
					setPage(actual+1);

					}
				
					 } });

		prev=(Button) findViewById(R.id.Prev);
		prev.setOnClickListener(new View.OnClickListener() {
				public void onClick(View arg0) { 
					if(actual>0){
						setPage(actual-1);

					}

					
				} });
    }
	private void setPage(int page){

		caja.getSettings().setBuiltInZoomControls(true);

		SharedPreferences.Editor editor =opciones.edit();
		float zoom=caja.getScale()*100	;
		editor.putFloat("zoom",zoom);
		
		caja.loadUrl(url.format(url,lang,page));
		caja.setInitialScale((int)zoom);
		
		actual=page;
		
		editor.putInt("actual",actual);
		editor.commit();
	}
	private void setPage(){

		caja.getSettings().setBuiltInZoomControls(true);
		
		
		int page=opciones.getInt("actual",0);
		setPage(page);
	}
	@Override public boolean onCreateOptionsMenu(Menu menu) {
		
		MenuInflater inflater = getMenuInflater(); 
		inflater.inflate(R.menu.indice, menu); 
		
		return true;
	}
	@Override public boolean onOptionsItemSelected(MenuItem item) {
		// Handle item selection 
		switch (item.getItemId()) { 
			case R.id.indice0: 
				setPage(0);
				break;
			case R.id.indice1: 
				actual=1; 
				break;
			case R.id.indice2: 
				actual=2; 
				break;
			case R.id.indice3: 
				actual=3; 
				break;
			case R.id.indice4: 
				actual=4; 
				break;
			case R.id.indice5: 
				actual=5; 
				break;
			case R.id.indice6: 
				actual=6; 
				break;
			case R.id.indice7: 
				actual=7; 
				break;
			case R.id.indice8: 
				actual=8; 
				break;
			case R.id.indice9: 
				actual=9; 
				break;
			case R.id.indice10: 
				actual=10; 
				break;
			case R.id.indice11: 
				actual=11; 
				break;
			case R.id.indice12: 
				actual=12; 
				break;
			case R.id.indice13: 
				actual=13; 
				break;
			case R.id.indice14: 
				actual=14; 
				break;
			case R.id.indice15: 
				actual=15; 
				break;
			case R.id.indice16: 
				actual=16; 
				break;
			case R.id.indice17: 
				actual=17; 
				break;
			case R.id.indice18: 
				actual=18; 
				break;
			case R.id.indice19: 
				actual=19; 
				break;
			case R.id.indice20: 
				actual=20; 
				break;
			case R.id.indice21: 
				actual=21; 
				break;
			case R.id.indice22: 
				actual=22; 
				break;
			case R.id.indice23: 
				actual=23; 
				break;
			case R.id.indice24: 
				actual=24; 
				break;
			case R.id.indice25: 
				actual=25; 
				break;
				
			 default: 
			 	return true;
		} 
		setPage(actual);
		return true;
		
		}
class detector extends SimpleOnGestureListener{
		@Override
		public boolean OnScroll(MotionEvent e1, MotionEvent e2, float dX,float dY){
			//setPage(actual+1);
			return false;
		}
		@Override
		public boolean onSingleTapConfirmed(MotionEvent ev){
			//setPage(actual+1)	;
			return false;
		}
		}
		
}
